草庐IT

xcode - 仅公开便利 init 的子类化类

全部标签

c# - 为特定子类注册事件处理程序

好的,代码结构问题:假设我有一个类FruitManager,它定期从某个数据源接收Fruit对象。我还有一些其他类需要在收到这些Fruit对象时得到通知。然而,每个类只对某些类型的水果感兴趣,并且每个水果对于如何处理它都有不同的逻辑。例如,CitrusLogic类有方法OnFruitReceived(Orangeo)和OnFruitReceived(Lemonl),当fruit收到,但不需要通知其他fruit。有没有办法在C#中优雅地处理这个问题(大概是通过事件或委托(delegate))?显然,我可以只添加通用的OnFruitReceived(Fruitf)事件处理程序,并使用if语

c# - 如何在文档级加载项中将 C# 类公开给 VBA 模块?

这是一个假设情况。我想知道是否可以在文档级加载项中向VBA公开C#类。这是一个SSCCE:在VSPRO2012中,我开始了一个新项目,SelectedOffice->Excel2010Workbook.(makesureyouselect.Netframeworkver4)我已将DateTimePicker控件添加到Sheet1。我可以在C#解决方案中设置/获取.Value属性关闭DateTimePicker控件而不会出现问题。调试时:在VBA中,.Value属性未公开。(尝试过.OLEFormat.Object.Value)并非所有属性都可以向VBA公开,因为ActiveX控件Dat

c# - 在 WCF 服务中公开 webHttpBinding 终结点

我创建了一个WCF服务并公开了三个端点,它们是basicHttpBinding、wsHttpBinding和webHttpBinding。这是我使用WCF进行实验的测试服务。但是,每当我使用.svc文件添加服务引用时,我只会得到两个(基本和ws)端点。由于某种原因,似乎没有公开第三个(webHttpBidning)端点。要重现此问题,请创建一个WCF应用程序项目,删除Service1服务,添加名为TestService的新项目>WCF服务,并将配置文件更改为以下内容:这里是ITestService.cs的代码:[ServiceContract]publicinterfaceITestS

C# - 将 Nullable<T> 公开给 COM 的好方法

我们正在努力向COM公开程序集。除其他事项外,我们经常使用可空值,例如long?、DateTime?等。这些是通用类型,不能向COM公开。什么是COM的这些数据类型的良好替代品?我们尝试了以下方法://OriginalCustomerIDpropertyinclasspubliclong?CustomerID{get;set;}//ExplicitCOMinterfacelongIComInterface.CustomerID{get{returnCustomerID.GetValueOrDefault();}set{CustomerID=value;}}问题是,我们需要一种通过COM

c# - 在 C# 中使用属性或方法公开业务规则?

我正在编写一个类来封装一些业务规则,每个规则都由一个bool值表示。该类将用于处理InfoPath表单,因此规则通过使用XPath操作在全局XML数据结构中查找值来获取当前程序状态。向调用者公开这些规则的最佳(最惯用)方式是什么——属性还是公共(public)方法?使用属性调用Rulesrules=newRules();if(rules.ProjectRequiresApproval){//getapproval}else{//skipapproval}使用方法调用Rulesrules=newRules();if(rules.ProjectRequiresApproval()){//g

c# - 将接口(interface)上的通用参数限制为子类

以下是人为设计的,但请耐心等待:interfaceClonable{TSubClassClone();}如何限制TSubClass为实现类型?即只让实现者这样做:classDog:Clonable{DogClone(){....}}不是这个:classBadDog:Clonable{RabbitClone(){....}} 最佳答案 你can't只有通过约定和文档才能强制执行....我的惯例是使用类似TSelf的东西。interfaceICloneablewhereTSelf:ICloneable{...}另请注意,任何实现或继承此

c# - Entity Framework - 子类相关对象的预加载

我想知道是否有可能为给定类的某些子类预加载相关实体。类结构如下订单与许多基本子订单类(SuborderBase)有关。MySubOrder类继承自SuborderBase。我想在加载订单时为Include()指定路径以加载MySubOrder相关实体(客户),但我收到一个错误,声称SuborderBase和客户之间没有关系。但是MySubOrder和Customer之间存在关系。下面是失败的查询Context.Orders.Include("SubOrderBases").Include("SubOrderBases.Customers")如何明确指定?更新。实体方案如下

c# - 使用 Ninject,我可以在不公开具体类的情况下从接口(interface)创建实例吗?

目前我看到的样本是这样的:像这样写你的代码......publicclassSamurai{publicIWeaponWeapon{get;privateset;}publicSamurai(IWeaponweapon){Weapon=weapon;}}Ninject可以像这样将接口(interface)映射到具体类型...publicclassWarriorModule:NinjectModule{publicoverridevoidLoad(){Bind().To();}}所以当我说varsamurai=kernel.Get();在我的Samurai对象中,我的IWeapon自动是

c# - 如何指定属于一个类但不属于某个子类的对象?

classA{}classB:A{}voidmethod(AthatisnotaBargument){}voidgeneric_method(generic_classgeneric_argument){}voidparams_method(paramsAthatisnotaB[]params_arguments){}有什么语法上的方法可以做到这一点吗?我意识到我可以做到if(argumentisB)thrownewArgumentException("argumentcannotbeaB","argument");在第一个方法的开头,并在第二个和第三个的foreach中执行此操作,但

c# - protobuf.net 意外的子类型

我在使用Protobuf.net的项目中遇到此异常:InvalidOperationException"Unexpectedsub-type:foo"我要发送一个类,如下所示:classmessage{listlistOfBars;}foo继承offbar,但是protobuf似乎对此感到窒息并生成上面的异常。有什么办法解决这个问题吗?我需要能够在列表中包含bar的所有不同子类型,因此更受类型约束的解决方案将很困难/不可能。 最佳答案 我可能弄错了,但我认为你需要在继承类上指定哪些子类型从它继承,例如:[Serializable,P